﻿(function () {
    $(function () {
        var _$table = $('#tb');
        var _alcCodeService = abp.services.app.alcCode;

        var _permissions = {
            create: abp.auth.hasPermission("Pages.Bom.AlcCodes.Create"),
            edit: abp.auth.hasPermission("Pages.Bom.AlcCodes.Edit"),
            'delete': abp.auth.hasPermission("Pages.Bom.AlcCodes.Delete")
        };

        var _createOrEditModal = new app.ModalManager({
            viewUrl: abp.appPath + 'AlcCodes/CreateOrEditAlcCodeModal',
            scriptUrl: abp.appPath + 'Views/AlcCodes/_CreateOrEditAlcCodeModal.js',
            modalClass: 'CreateOrEditAlcCodeModal'
        });

        ////渲染select
        //$("#cartypeId").selectpicker(
          
        //);
        //$("#styleId").selectpicker();

        var TableInit = function () {
            var oTableInit = new Object();
            oTableInit.Init = function () {
                _$table.bootstrapTable({
                    url: '/AlcCodes/GetAllAlcCodes', //请求后台的URL（*）
                    method: 'get', //请求方式（*）
                    toolbar: '#toolbar', //工具按钮用哪个容器
                    striped: true, //是否显示行间隔色
                    cache: false, //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
                    pagination: true, //是否显示分页（*）
                    sortable: true, //是否启用排序
                    sortOrder: "asc", //排序方式
                    queryParams: oTableInit.queryParams, //传递参数（*）
                    sidePagination: "server", //分页方式：client客户端分页，server服务端分页（*）
                    pageNumber: 1, //初始化加载第一页，默认第一页
                    pageSize: 10, //每页的记录行数（*）
                    pageList: [10, 25, 50, 100], //可供选择的每页的行数（*）
                    search: false, //是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
                    strictSearch: true,
                    showColumns: true, //是否显示所有的列
                    showRefresh: true, //是否显示刷新按钮
                    minimumCountColumns: 2, //最少允许的列数
                    clickToSelect: true, //是否启用点击选中行
                    //height: 500, //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
                    uniqueId: "Id", //每一行的唯一标识，一般为主键列
                    showToggle: true, //是否显示详细视图和列表视图的切换按钮
                    cardView: false, //是否显示详细视图
                    detailView: false, //是否显示父子表
                    showExport: true,                     //是否显示导出
                    exportDataType: "all",              //basic', 'all', 'selected'.
                    columns: [{
                        checkbox: true
                    }, {
                        field: 'Id',
                        align: 'center',
                        title: '序号',
                    },
                    {
                        field: 'CartypeName',
                        align: 'center',
                        title: app.localize('CartypeName')
                    },
                    {
                        field: 'StyleName',
                        align: 'center',
                        title: app.localize('StyleName')
                    },
                    {
                        field: 'ALCCode',
                        align: 'center',
                        title: app.localize('ALCCode')
                    },
                     //{
                     //    field: 'SeatNo',
                     //    align: 'center',
                     //    title: app.localize('SeatNo')
                     //},
                     {
                         field: 'CarStyle',
                         align: 'center',
                         title: app.localize('CarStyle')
                     },
                    {
                        field: 'CreationTime',
                        align: 'center',
                        title: app.localize('CreationTime'),
                        formatter: function (value, row, index) {
                            var time = row.CreationTime;
                            return moment(time).format("YYYY-MM-DD HH:mm:ss")
                        }
                    }, {
                        field: 'operate',
                        title: app.localize('operate'),
                        align: 'center',
                        valign: 'middle',
                        clickToSelect: false,
                        formatter: operateFormatter,
                        events: operateEvents
                    }],
                });
            };
            //指定操作组
            function operateFormatter(value, row, index) {
                return [
                    ' <a class="edit" href="javascript:void(0)" title="Edit">',
                    '<i class="glyphicon glyphicon-edit"></i>',
                    '</a>',
                    ' <a class="remove" href="javascript:void(0)" title="Remove">',
                    '<i class="glyphicon glyphicon-remove"></i>',
                    '</a>'
                ].join('');
            }

            //指定table表体操作事件
            window.operateEvents = {
                'click .edit': function (e, value, row, index) {
                    _createOrEditModal.open({ id: row.Id });
                },
                'click .remove': function (e, value, row, index) {
                    deleteAlcCode(row);
                }
            };

            //得到查询的参数
            oTableInit.queryParams = function (params) {
                var temp = {   //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
                    limit: params.limit,   //页面大小
                    offset: params.offset,  //页码
                    sort: params.sort,  //排序列名  
                    sortOrder: params.order,//排位命令（desc，asc）  
                    cartypeId: $("#cartypeId").val(),
                    styleId: $("#styleId").val(),
                    alcCode: $("#ALCCode").val()
                };
                return temp;
            };
            return oTableInit;
        };

        // #region CRUD按钮操作
        $("#btn-query").click(function () {
            _$table.bootstrapTable('refresh');
        });

        $("#btn-add").click(function () {
            _createOrEditModal.open();
        });

        $("#btn-edit").click(function () {
            var selectedRaido = _$table.bootstrapTable('getSelections');
            if (selectedRaido.length === 0) {
                abp.notify.warn(app.localize('PleaseSelectForEdit'));
            } else {
                _createOrEditModal.open({ id: selectedRaido[0].Id });
            }
        });
        $('#btn-export').click(function () {
            layer.load(0, {
                shade: [0.3, '#000'] //0.1透明度的白色背景
            });

            _alcCodeService
                .getAlcCodeToExcel({

                   
                })
                 .done(function (result) {
                     layer.closeAll('loading');
                     app.downloadTempFile(result);
                 });
        });

        $("#btn-delete").click(function () {
            var selectedRaido = _$table.bootstrapTable('getSelections');
            if (selectedRaido.length === 0) {
                abp.notify.warn(app.localize('PleaseSelectForDelete'));
            } else {
                deleteAlcCode(selectedRaido[0]);
            }
        });
        // #endregion

        //删除当前basicAlcs实体
        function deleteAlcCode(alccode) {
            abp.message.confirm(
                app.localize('AlcCodeDeleteWarningMessage', alccode.ALCCode),
                    function (isConfirmed) {
                        if (isConfirmed) {
                            _alcCodeService.deleteAlcCodeAsync({
                                id: alccode.Id
                            }).done(function () {
                                //getBasicWorkshops(true);
                                _$table.bootstrapTable('refresh');
                                abp.notify.success(app.localize('SuccessfullyDeleted'));
                            });
                        }
                    }
                );
        }

        //导出为excel文档
      

        $("#btn-query").click(function () {
            _$table.bootstrapTable('refresh');
        });

        //制作BasicAlcs事件,用于请求变化后，刷新表格信息
        abp.event.on('app.createOrEditAlcCodeModalSaved', function () {
            _$table.bootstrapTable('refresh');
        });

        var oTable = new TableInit();
        oTable.Init();
        _$table.bootstrapTable('hideColumn', 'Id');

        //下拉框二级联动
        $("#cartypeId").change(function () {
            //获取工厂的ID
            var factoryID = $("#cartypeId").val();
            //获取车间
            var lst = $("#styleId");
            $.ajax({
                type: "get",
                url: "/Styles/GetAllStyleByCartypeId",
                data: { id: factoryID },
                dataType: 'JSON', //返回数据的格式
                contentType: 'application/json',
                success: function (data, status) {
                    if (status == "success") {
                        lst.empty();//清空下拉框
                        lst.append("<option value=''> </option>");
                        $.each(data, function (i, item) {
                            lst.append("<option value='" + data[i].Value + "'>" + data[i].DisplayText + "</option>");
                            
                        });
                        
                        lst.selectpicker('refresh');
                        lst.selectpicker({
                            title: '请选择'
                        });
                    }
                },
                error: function () {
                    abp.notify.error('Error');
                },
            });
        });
    });
})();